Ext.define('cp.view.grid.GestionEspecialidad', {
    extend: 'cp.view.grid.GestionBase',
    alias: 'widget.gestionEspecialidad',
    
    /* Variables de instancia */
    stage: 'Especialidad',
    idProperty: 'idEspecialidad',
    deleteUrl: 'bin/especialidad/borrar.php',
    undeleteUrl: 'bin/especialidad/recuperar.php',
    
    initComponent: function(){
        this.callParent(arguments);
        
        this.reconfigure(null,[
            {header: '#', dataIndex: 'idEspecialidad', hidden: true},
            {header: 'Nombre', dataIndex: 'especialidad', flex: 2},
            {header: 'Activa', dataIndex: 'activa', hidden: false, flex: 1}
    	]);

        this.getComponent('top-toolbar').add([
            {xtype: 'button', text: 'Editar', iconCls: 'ico-edit', action: 'edit'}
        ]);
    },
    verFormularioAlta: function(){
        var form = Ext.create('cp.view.form.AltaEspecialidad',{
            actionUrl: 'bin/especialidad/agregar.php'
        });
        var win = Ext.create('cp.view.ui.DecoratorForm',{
            aTitle: 'Nueva especialidad',
            aForm: form
        });
        win.show();
    },
    verFormularioEdicion: function(){
        if(this.hayFilaSeleccionada()){
            if(this.filaSeleccionada().get('activa') === 'Sí'){
                var e = this.filaSeleccionada().get('especialidad');
                var id = this.filaSeleccionada().get('idEspecialidad');
                this.cargarFormularioEdicion(id,e);
            }else{
                this.mostrarErrItemInactivo();
            }
        }else{
            this.mostrarErrNoSeleccion();
        }
    },
    verFormularioVista: function(){
        if(this.hayFilaSeleccionada()){
            var e = this.filaSeleccionada().get('especialidad');
            var id = this.filaSeleccionada().get('idEspecialidad');
            this.cargarFormularioVista(id,e);
        }else{
            this.mostrarErrNoSeleccion();
        }
    },
    cargarFormularioEdicion: function(idEspecialidad,esp){
        var form = Ext.create('cp.view.form.EditEspecialidad',{
            actionUrl: 'bin/especialidad/modificar.php'
        });
        form.getForm().findField('especialidad').setValue(esp);
        form.getForm().findField('idEspecialidad').setValue(idEspecialidad);

        var win = Ext.create('cp.view.ui.DecoratorForm',{
            aTitle: 'Editar especialidad',
            aForm: form
        });
        win.show();
    },
    cargarFormularioVista: function(idEspecialidad,esp){
        var form = Ext.create('cp.view.form.VerEspecialidad',{});
        form.getForm().findField('especialidad').setValue(esp);
        

        var win = Ext.create('cp.view.ui.DecoratorFormSimple',{
            aTitle: 'Ver especialidad',
            aForm: form
        });
        win.show();
    },
    recuperarItem: function(){
        if(this.hayFilaSeleccionada()){
            Ext.create('cp.view.ui.UndeleteConfirm',{
                mensaje: "¿Está seguro de querer recuperar la " + this.stage.toLowerCase() + " " +
                this.filaSeleccionada().get('especialidad') + " del sistema?",
                target: this
            }).showDialog();
        }else{
            this.mostrarErrNoSeleccion();
        }
    },
    borrarItem: function(){
        if(this.hayFilaSeleccionada()){
            Ext.create('cp.view.ui.DeleteConfirm',{
                mensaje: "¿Está seguro de querer eliminar la " + this.stage.toLowerCase() + " " +
                this.filaSeleccionada().get('especialidad') + " del sistema?",
                target: this
            }).showDialog();
        }else{
            this.mostrarErrNoSeleccion();
        }
    },
    verFormularioBusqueda: function(){
        var form = Ext.create('cp.view.form.BuscarEspecialidad',{
            actionUrl: 'aUrl'
        });
        
        var win = Ext.create('cp.view.ui.DecoratorFormSearch',{
            aTitle: 'Buscar especialidades',
            aForm: form
        });
        
        win.add(form);
        win.show();
    }
});